#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>

#include "fsm.h"

#define TTY1	"/dev/tty9"
#define TTY2	"/dev/tty10"

int main(void)
{
	int fd1, fd2;
	fsm_t *fsm12, *fsm21;

	fd1 = open(TTY1, O_RDWR);	
	if (-1 == fd1) {
		perror("open()");
		exit(1);
	}
	fd2 = open(TTY2, O_RDWR | O_NONBLOCK);	
	if (-1 == fd2) {
		perror("open()");
		exit(1);
	}

	fsm_init(&fsm12, fd1, fd2);
	fsm_init(&fsm21, fd2, fd1);

	while (!(fsm12->state == STATE_T && fsm21->state == STATE_T)) {
		// 设备文件的数据到来---》异步事件 捕获---》轮训	
		fsm_drive(fsm12);
		fsm_drive(fsm21);
	}

	fsm_destroy(&fsm12);
	fsm_destroy(&fsm21);

	return 0;
}

